java多线程run方法传参 您所在的位置:网站首页 线程 run java多线程run方法传参

java多线程run方法传参

2023-11-13 17:15| 来源: 网络整理| 查看: 265

      我们知道多线程是通过star()方法让线程处于准备就绪状态,而实际运行的业务逻辑是放在run()方法体中的,但是run()方法是没有参数的方法,实际的业务场景中,我们可能需要向方法体中传递参数,下面介绍常用的两种传参方式,第三种下次再说,或者你们百度吧,这里偷个懒。

      第一种方式:构造方法传参

public class CallbackCustomerTypeThread implements Runnable { public static final Logger logger = LoggerFactory.getLogger(CallbackCustomerTypeThread.class); private BasCmCustomerType basCmCustomerType; private BasCmCustomerTypeService basCmCustomerTypeService; public CallbackCustomerTypeThread(BasCmCustomerType basCmCustomerType, BasCmCustomerTypeService basCmCustomerTypeService) { this.basCmCustomerType = basCmCustomerType; this.basCmCustomerTypeService = basCmCustomerTypeService; } @Override public void run() { //向金剑南同步 try { basCmCustomerTypeService.syncToJjn(basCmCustomerType); } catch (Exception e) { logger.info("向金剑南同步客户异常,id=" + basCmCustomerType.getId(), e); } //向水晶剑同步 try { basCmCustomerTypeService.syncToSjj(basCmCustomerType); } catch (Exception e) { logger.info("向水晶剑同步客户异常,id=" + basCmCustomerType.getId(), e); } } }

调用:

Runnable runnable = new CallbackCustomerTypeThread(basCmCustomerType, this); Thread thread = new Thread(runnable); thread.start();

第二种方式:通过变量或者方法传递参数

package mythread; public class MyThread2 implements Runnable { private String name; public void setName(String name) { this.name = name; } public void run() { System.out.println("hello " + name); } public static void main(String[] args) { MyThread2 myThread = new MyThread2(); myThread.setName("world"); Thread thread = new Thread(myThread); thread.start(); } }

第三种:通过回调函数传递参数

    暂时不写了,滴~~~~  下班卡



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有